package wu.service;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DownloadHTML {
    public static List<String> NiuUsersService(String urlString) {
        System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe");
        List<String> list = new ArrayList<>();
        // 配置 ChromeOptions 启用无头模式
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--headless"); // 启用无头模式
        options.addArguments("--disable-gpu"); // 禁用GPU渲染，某些系统需要
        options.addArguments("--window-size=1920,1200"); // 设置窗口大小

        // 创建一个新的 ChromeDriver 实例
        WebDriver driver = new ChromeDriver(options);
        String num = "空";
        String html = "空";
        String contentInsideDiv = "空";
        try {
            // 打开网页
            driver.get(urlString);

            // 等待页面加载完成（这里可以根据实际情况调整等待时间）
            Thread.sleep(3000);

            // 获取页面的 HTML 内容
            html = driver.getPageSource();
            if (html != null) {
                System.out.println("获取页面HTML成功");
            } else {
                System.out.println("获取页面HTML失败");
            }

//            找到周数
            // 定义正则表达式模式，用于匹配"Round"后面跟着数字的情况
            Pattern pattern = Pattern.compile("Round (\\d+)");
            Matcher matcher = null;
            if (html != null) {
                matcher = pattern.matcher(html);
            }
            if (matcher.find()) {
                num = matcher.group(1);
            }

            // 关闭浏览器
            driver.quit();
            // 使用Jsoup解析HTML字符串为Document对象
            Document doc = null;
            if (html != null) {
                doc = Jsoup.parse(html);
            }
            // 通过class选择器找到对应的div元素
            Element targetDiv = doc.selectFirst("div.rank-main.clearfix");
            if (targetDiv != null) {
                // 获取该div元素内部的HTML内容
                contentInsideDiv = targetDiv.html();
            } else {
                System.out.println("未找到对应的div元素");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        list.add(contentInsideDiv);
        list.add(num);
        return list;
    }
}
